package com.zw.mes.module.system.mapper;

import com.zw.mes.entity.sys.Menu;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description:
 *
 * @Author: China.sgl
 * @Date: 2020/7/30 16:04
 */
public interface MenuMapper {

    /**
     * 按 用户ID 查询权限
     *
     * @param userId 用户ID
     * @return List
     */
    List<Menu> findByUserId(Integer userId);

    /**
     * 按 角色ID 查询权限
     *
     * @param roleId 角色ID
     * @return List
     */
    List<Menu> findByRoleId(Integer roleId);

    /**
     * 按 权限码 查询权限
     *
     * @param code 权限码
     * @return 权限
     */
    Menu findByCode(String code);

    /**
     * 查询所有权限
     *
     * @return List
     */
    List<Menu> findAll();

    /**
     * 按条件查询权限
     *
     * @param menu 权限条件
     * @return List
     */
    List<Menu> findByCondition(Menu menu);

    /**
     * 按 id 修改状态
     *
     * @param id id
     * @param status 状态
     * @return 影响行数
     */
    int updateStatusByIdWithRecursion(@Param("id") Integer id, @Param("status") int status);
}